I. Field of the Invention
The present invention relates to data communications. More particularly, the present invention relates to a novel and improved communication system for providing error protection for over the air file transfer compatible with an IS-99 communication format.
II. Description of the Related Art
The complexity of modern day communication systems and the critical time to market factor have put great strain on the design of communication systems. The complexity stems from the large amount of signal processing, large number of hardware blocks, complicated data protocols, and numerous modes of operation. A microprocessor is typically required to coordinate and control the myriad of tasks.
The complexity of the system renders the design and debug tasks difficult. Special burden is placed on the software development since this stage must integrate the entire system, often under high schedule pressure. To mitigate system complexity and schedule pressure, some modern communication systems are designed with the ability to accept downloadable software or microcode over the air after system deployment. These systems are initially deployed with incomplete software functionality with plans to upgrade to new software releases as features are added or bugs are discovered and removed.
The design of a file transfer system must address the problem of correct reception by a large number of remote stations. In a typical communication system, data transmissions between a central station and the remote stations is hindered by impairments in the transmission channel, specifically additive noise and spurious signals within the transmission bandwidth. The signal may additionally be distorted by other phenomenons, such as multipath, before it reaches the remote stations. To combat these impairments and improve correct detection by the remote stations, the data is encoded before transmission.
Two classes of coding, block coding and convolutional coding, are utilized to improve correct reception. Convolutional code provides good error correcting capability but typically outputs correlated bursts of error. Block codes have built in burst error handling capability when combined with the proper level of interleaving. In fact, a Reed-Solomon block code can handle any burst of errors within a symbol. When convolutional coding alone does not produce the required coding gain, a concatenated code comprising a block code and a convolutional code can be used.
One such system which may need to transfer a large amount of data to many remote stations is a code division multiple access (CDMA) communication system which conforms to the "TIA/EIA/IS-99 Data Services Option Standard for Wideband Spread Spectrum Digital Cellular System", hereinafter referred to as the IS-99 standard. In accordance with the IS-99 standard, data is partitioned into data frames and block encoded to yield the frame quality indicators, or cyclic redundancy check (CRC) bits. The data bits and CRC bits are convolutionally encoded and transmitted over the air. The remote stations receive and demodulate the signal, convolutionally decode the data, and use the CRC bits to determine whether the data frames are received in error. The CRC bits allow detection of errors in transmission but do not provide error correction capability.
In accordance to the IS-99 standard, the data frames are encoded to form code channel frames which are 20 msec wide. On the forward link transmission from the central station to the remote stations, the symbol rate of each code channel is 19.2 Ksps. This translates to 384 symbols per code channel frame. Using a rate 1/2 convolutional encoder to encode the data, the data rate can be up to 9.6 Kbps. At the 9.6 Kbps data rate, there are 192 bits per code channel frame. In accordance to the IS-99 standard, the 192 bits are comprised of 172 information bits, 12 CRC bits, and 8 code tail bits. A higher data rate can be obtained by the use of other code rates. For example, a data rate of 14.4 Kbps is achieved by using a rate 1/2 convolutional encoder and deleting two out of every eight symbols, to obtain a punctured rate 3/4 convolutional encoder. In this case each code channel frame contains 576 symbols or 288 bits.
The CDMA communication system is a full duplex communication system. The remote stations communicate with the central station on an independent reverse link. Upon detection of uncorrectable frame errors, the remote stations transmit requests to the central station to retransmit the data frames received in error. If the central station attempts to download a large software file to a large number of remote stations, inadequate coding can result in many incorrectly received data frames. The central station can experience a bottleneck of requests from many remote stations, each requesting retransmission of different data frames. In this scenario, transmission of large software files to many remote stations can be greatly impaired by the inadequate coding gain provided by the IS-99 standard.
The convolutional encoder of a CDMA central station which conforms to the IS-99 standard is rate 1/2 (N=2) with a constraint length of 9 (K=9). The convolutional encoder encodes each input bit into N code bits called a code branch according to the set of N generator polynomials. Each generator polynomial G(x) computes one code bit. The N code bits are combined into an N-bit code branch. The constraint length K of the encoder is the number of data bits used in the encoding process and determines the error correcting capability of the code. Long constraint length K yields better performance at the expense of additional hardware and computational complexity. Since each input bit is encoded into N code bits, the code rate for the convolutional encoder is 1/N. Other code rates can be obtained from a 1/N code by puncturing the code bits. Punctured codes are treated by J. Cain, G. Clark, and J. Geist in "Punctured Convolutional Codes of Rate (n-1)/n and Simplified Maximum Likelihood Decoding," IEEE Transaction on Information Theory, IT-25, pgs. 97-100, January 1979. In fact, for the CDMA system, rate 1/2 and rate 3/4 convolutional encoding are used on the forward link transmission between the central station and the remote stations, with the rate selection dependent on the mode of operation of the central station.
A Viterbi algorithm is used to decode the transmitted code bits at the receiver. A discussion on the theory and operation of the Viterbi decoder is contained in the paper "Convolutional Codes and Their Performance in Communication Systems" by A. Viterbi, IEEE Transaction on Communication Technology, Vol. COM19, no. 5, October 1971, pgs. 821-835. The Viterbi algorithm performs the maximum likelihood decoding of the transmitted data path. For each received code branch, the branch metric of all branches entering each state is computed and added to the corresponding prior path metrics. The best path entering each state is selected and stored as the new path metrics. The selected path is stored in a path memory. In "Development of Variable Rate Viterbi Decoder and its Performance Characteristics," Sixth International Conference on Digital Satellite Communications, Phoenix, Ariz., September 1983, Y. Yasuda et al. show that the survivor paths with the lowest path metric all converge to the same path after certain trace back depth. Thus, a Viterbi decoded bit is obtained by tracing a path back by the trace back distance in the path memory.
The CRC block code used in the CDMA communication system in accordance to the IS-99 standard is a systematic, cyclic, and linear block code. CRC block coding is well known in the art and a good treatment of the topic is found in a number of references. In a systematic block code, the k data bits form the first k code bits of the code word. The n-k parity bits are formed by a linear combination of the k data bits according to the generator polynomial g(x). Because of the linear, systematic, and cyclic properties of the CRC block code, the encoding process is easily achieved with simple shift registers and exclusive-OR gates. Since n code bits are transmitted for k data bits, the code rate, or the reduction in data rate, is k/n.
In a CDMA system which conforms to the IS-99 standard, the data is encoded with a CRC block code and a convolutional code. The CRC block code only provides error detection capability and does not provide error correction capability. The burden is placed on the convolutional code to provide all error corrections. When a large software file is downloaded to a large number of remote stations, the need for error free reception is especially important. If the performance of the convolutional code is not adequate by itself, additional coding with either error correcting block code or convolutional code is necessary to ensure error free reception of the software file by the remote stations.